package com.jingdianjichi.oss.controller;


import com.alibaba.nacos.api.config.annotation.NacosValue;
import com.jingdianjichi.oss.entity.Result;
import com.jingdianjichi.oss.service.FileService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;


import javax.annotation.Resource;
import java.util.List;

@RestController
public class FileController {

    @Autowired
    private FileService fileService;

    @RequestMapping("/testGetAllBuckets")
    public String testGetAllBuckets(){
        List<String> allBuckets = fileService.getAllBuckets();
        return allBuckets.get(0);
    }

    /**
     * @Description: 获取minio服务器的存储文件的完整url地址，
     *                      返回url： Minio服务器网址 / 桶名字 /文件相对路径
     *                         objectName ： 文件的相对路径，包括文件名
     * @return:
     * @Author:  sky
     * @date:  2024/11/16 22:39
     */
    @RequestMapping("/getUrl")
    public String getUrl(String bucketName, String objectName){
        return fileService.getUrl(bucketName, objectName);
    }

    /**
     * @Description: 上传文件
     *              返回 文件在文件服务器的地址
     *                 objectName： 文件相对路径的文件路径，不包括文件名
     *                 uploadFile.getOriginalFilename()：获取文件名
     *                 文件相对路径： objectName/文件名
     * @return:
     * @Author:  sky
     * @date:  2024/11/16 23:00
     */
    @RequestMapping("/upload")
    public Result upload(MultipartFile uploadFile, String bucket, String objectName){
        String url = fileService.uploadFile(uploadFile, bucket, objectName);
        return Result.ok(url);
    }

}
